ในเอลิกซีร์ เราละทิ้งแนวทางแบบบังคับที่ต้องเปลี่ยนสถานะ ไปสู่แนวทางที่เน้นการไหลเวียนของข้อมูล โดยที่โปรแกรมจะทำงานเป็นช่วงๆ การแปลงอย่างบริสุทธิ์แทนที่จะบอกคอมพิวเตอร์ วิธีการ ในการเปลี่ยนค่าหนึ่ง พวกเราได้กำหนดลำดับฟังก์ชันที่ทำให้เกิด การเขียนโปรแกรมควรเป็นเรื่องของการแปลงข้อมูล។
1. กฎแห่งความไม่สามารถเปลี่ยนแปลงได้
ในเอลิกซีร์ ค่าทุกอย่างไม่สามารถเปลี่ยนแปลงได้เมื่อข้อมูลถูกสร้างขึ้นแล้ว จะไม่สามารถเปลี่ยนแปลงได้ ซึ่งทำให้มั่นใจได้ว่า ข้อมูลที่ไม่สามารถเปลี่ยนแปลงได้ คือข้อมูลที่เราทราบแน่นอน—ข้อมูลจะไม่มีวันเปลี่ยนแปลงโดยไม่ตั้งใจ จึงช่วยกำจัดปัญหาที่เกิดจากสถานะจำนวนมาก กระบวนการแปลงนี้ไม่ได้เปลี่ยนแปลงข้อมูลเลย แต่แต่ละฟังก์ชันจะสร้าง เวอร์ชันใหม่และสดใส ของข้อมูลขึ้นมา
2. ปรัชญาของการใช้เครื่องหมายท่อ (Pipe)
เครื่องหมายท่อ (|>) ทำให้ข้อมูลเหมือนของเหลวที่ไหลผ่านสายการผลิต ภาษาโปรแกรมเชิงฟังก์ชันช่วยให้เราคิดในแง่ของฟังก์ชันที่แปลงข้อมูลทีละขั้นตอน
3. บริบทของผู้ดำเนินการ (Actor)
ในเครื่องเสมือนเออร์แลง (BEAM) โค้ดจะทำงานใน กระบวนการพร้อมกันขนาดเล็กแต่ละกระบวนการมีสถานะของตนเอง กระบวนการสื่อสารกันผ่านข้อความเนื่องจากการสื่อสารเกิดจากการส่งข้อความ จึงทำให้การแลกเปลี่ยนข้อมูลระหว่างเครื่องต่าง ๆ ในเครือข่ายถูกจัดการอย่างโปร่งใสโดยเครื่องเสมือน